From: Aaron Schulz Date: Tue, 10 Nov 2015 05:24:34 +0000 (-0800) Subject: Various JobQueue test tweaks X-Git-Tag: 1.31.0-rc.0~9028^2 X-Git-Url: http://git.cyclocoop.org/%28%5B%5E/404?a=commitdiff_plain;h=247610aea0313b868b96ccd4262bbb8f759925af;p=lhc%2Fweb%2Fwiklou.git Various JobQueue test tweaks * Remove some getAcquiredCount() assertions when claimTTL=0 as this is not well defined enough (queues may take a few minutes to garbage collect the failed jobs). * Added some tests to make sure push() only de-duplicates among unclaimed jobs. Change-Id: Ie0a5e539095c245dfcc8c160417e12824eb7ab83 --- diff --git a/tests/phpunit/includes/jobqueue/JobQueueTest.php b/tests/phpunit/includes/jobqueue/JobQueueTest.php index ea1a4f6314..9808a55bd5 100644 --- a/tests/phpunit/includes/jobqueue/JobQueueTest.php +++ b/tests/phpunit/includes/jobqueue/JobQueueTest.php @@ -128,8 +128,6 @@ class JobQueueTest extends MediaWikiTestCase { $queue->flushCaches(); if ( $recycles ) { $this->assertEquals( 1, $queue->getAcquiredCount(), "Active job count ($desc)" ); - } else { - $this->assertEquals( 0, $queue->getAcquiredCount(), "Active job count ($desc)" ); } $job2 = $queue->pop(); @@ -139,8 +137,6 @@ class JobQueueTest extends MediaWikiTestCase { $queue->flushCaches(); if ( $recycles ) { $this->assertEquals( 2, $queue->getAcquiredCount(), "Active job count ($desc)" ); - } else { - $this->assertEquals( 0, $queue->getAcquiredCount(), "Active job count ($desc)" ); } $queue->ack( $job1 ); @@ -148,8 +144,6 @@ class JobQueueTest extends MediaWikiTestCase { $queue->flushCaches(); if ( $recycles ) { $this->assertEquals( 1, $queue->getAcquiredCount(), "Active job count ($desc)" ); - } else { - $this->assertEquals( 0, $queue->getAcquiredCount(), "Active job count ($desc)" ); } $queue->ack( $job2 ); @@ -215,8 +209,6 @@ class JobQueueTest extends MediaWikiTestCase { $this->assertEquals( 0, $queue->getSize(), "Queue is empty ($desc)" ); if ( $recycles ) { $this->assertEquals( 1, $queue->getAcquiredCount(), "Active job count ($desc)" ); - } else { - $this->assertEquals( 0, $queue->getAcquiredCount(), "Active job count ($desc)" ); } $queue->ack( $job1 ); @@ -225,6 +217,29 @@ class JobQueueTest extends MediaWikiTestCase { $this->assertEquals( 0, $queue->getAcquiredCount(), "Active job count ($desc)" ); } + /** + * @dataProvider provider_queueLists + * @covers JobQueue + */ + public function testDeduplicationWhileClaimed( $queue, $recycles, $desc ) { + $queue = $this->$queue; + if ( !$queue ) { + $this->markTestSkipped( $desc ); + } + + $job = $this->newDedupedJob(); + $queue->push( $job ); + + // De-duplication does not apply to already-claimed jobs + $j = $queue->pop(); + $queue->push( $job ); + $queue->ack( $j ); + + $j = $queue->pop(); + // Make sure ack() of the twin did not delete the sibling data + $this->assertType( 'NullJob', $j ); + } + /** * @dataProvider provider_queueLists * @covers JobQueue